<%@page import="oracle.sql.CLOB"%>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" 
trimDirectiveWhitespaces="true" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<sql:update dataSource="jdbc/oracle11xe">
  update board set reades=reades+1 where bdno=?
  <sql:param value="${param.bdno}"/>
</sql:update>


<sql:query var="rs" dataSource="jdbc/oracle11xe">
  select * from board where bdno=?
  <sql:param value="${param.bdno}"/>
  <%-- view.jsp?bdno=60 --%>
</sql:query>

<%--로그인 여부에 다라"새글쓰기"버튼이나 "로그인 하세요"라는 안내문구를 출력하는 코드 작성--%>

<c:if test="${ not empty sessionScope.login}">
	<c:set var="loginResult"><button type="button" id="updBtn">수정하기</button>
							<button type="button" id="delBtn">삭제하기</button>
	</c:set>
</c:if>

<c:if test="${empty sessionScope.login }">
	<c:set var="loginResult">
		<button type="button" id="updBtn" disabled="disabled">수정하기</button>
		<button type="button" id="delBtn" disabled="disabled">삭제하기</button>
	</c:set>
</c:if>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:: JSP 프로젝트 v1 ::</title>
<link href="css/normalize.css" rel="stylesheet">
<link href="css/dasom.css" rel="stylesheet">
<style type="text/css">
  #view {width:550px; margin:0 auto;}
  label {display:inline-block; width:120px; text-align:right; font-weight:bold; padding-right:10px;}
  #view div{margin:10px 10px;}
  .contents {width:350px; height:275px; border:1px solid gray; display:inline-block;
  			/* margin:-20px 0 0 130px; */}
  .hideme {text-overflow:ellipsis;
  			overflow:hidden;}
  
</style>
</head>
<body>
  <!-- 상단영역header 시작 -->
  <%@include file="layout/header.jsp" %>
  <!-- 정적포함 : jsp를 서블릿으로 컴파일하기 전에  -->
  <!-- 먼저 include될 파일의 소스를 현재 문서에 삽입 -->
  <!-- 그런 다음 서블릿으로 변환하고 실행 후 결과 출력 -->
  <!-- 상단영역header 끝 -->
  
	<div id="contents">
	  <h2>게시판 본문글</h2>
	  
	  <%-- 본문 출력 시작 --%>
	  <c:forEach var="r" items="${rs.rows}">
 	    <%-- oracle의 clob 형은 jstl이나 el로 출력 불가 --%>
	    <%-- 따라서, 자바코드로 clob를 string 형으로 변환해야 함 --%>
	    <c:set var="contents" value="${r.contents}" scope="request"/>
	    <%-- clob로 저장된 값을 문자로 변환하기 위해 
	    	먼저  	request 영역에   contents 라는 객체로 생성--%>
	    <%
	      CLOB clob = (CLOB)request.getAttribute("contents");
	      // c:set으로 request영역에 생성한 contents 변수를
	      // 자바코드로 호출한 후clob 형으로 변환함
	      try{
	      String tmp = clob.getSubString(1, (int)clob.length());
	      // clob로 저장된 값을 지정된 크기만큼 문자형으로 다시 읽어서
	      // 문자형 변수에 저장
	      request.setAttribute("ncontents", tmp);
	      // 변환된 문자값을 el이나 jstl에 사용할 수 있도록 
	      // request 영역에 ncontents 이름의 객체로 생성
	      } catch(Exception ex) {}
	    %>
	  <div id="view">
	    <div><label>제목</label><span class="hideme">${r.bdtitle}</span></div>
	    <div><label>작성자</label><span>${r.userid}</span></div>
	    <div><label>작성일</label><span>${fn:substring(r.regdate,0,10)}</span></div>
	    <div><label>조회수</label><span>${r.reades}</span></div>
	    <div><label>본문</label>
	    <span class="contents">${ncontents}</span></div>
	  <!-- 버튼들 -->
	  <div><label></label><button type="button" id="listBtn">목록보기</button>
	  <%-- <button type="button" id="updBtn">수정하기</button>--%>
	  ${loginResult }
	  <%-- <button type="button" id="delBtn">삭제하기</button></div>--%>
	  
	  
	  </div> <!-- view -->
	  </c:forEach>
	  
	  <input type="hidden" id="bdno" value="${param.bdno}">
	  <%--list.jsp?bdno=xxx를 통해 view.jsp로 전파된 bdno를 update.jsp나 delete.jsp로 bdno를 전파하기 위해 
	  숨김필드로 작성함 이렇게 전파된 bdno는 javascript의 getElementById를 이용해 질의문자열을 생성함--%>
	  
	</div>
	
  <!-- 하단영역footer 시작 -->
  <%@include file="layout/footer.jsp" %>
  <!-- 하단영역footer 끝 -->
	
	<script src="js/jquery-1.11.1.min.js"></script>
	<script src="js/dasom.js"></script>
	
</body>
</html>